package br.com.traineApplication.bean;

import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

import org.primefaces.event.RowEditEvent;

import br.com.traineApplication.dao.DAO;
import br.com.traineApplication.entity.Projeto;

@ManagedBean (name="projetoBean")
@SessionScoped
public class ProjetoBean {

	private Projeto projeto;
    private DataModel<Projeto> listaProjetos;
	
	public DataModel<Projeto> getListaProjetos(){
		List<Projeto> lista = new DAO<Projeto>(Projeto.class).listaTodos();
		listaProjetos = new ListDataModel<Projeto>(lista);
		return listaProjetos;
	}
	
	
	public static void main(String[] args) {
		ProjetoBean p = new ProjetoBean();
		
		System.out.println(p.getListaProjetos().getRowData());
	}
	
	// Getter e Setter de projeto
	public Projeto getProjeto() {
		return projeto;
	}
	public void setProjeto(Projeto projeto) {
		this.projeto = projeto;
	}

	public void prepararAdicionarProjeto(ActionEvent actionEvent) {
		projeto = new Projeto();
	}

	public void prepararAlterarProjeto(ActionEvent actionEvent) {
		projeto = (Projeto)(listaProjetos.getRowData());
	}

	
	public void inserirProjeto() {
		new DAO<Projeto>(Projeto.class).adiciona(projeto);
	}
	public void alterarProjeto() {
		new DAO<Projeto>(Projeto.class).atualiza(projeto);
	}	

	public void excluirProjeto() {
		projeto = (listaProjetos.getRowData());
		new DAO<Projeto>(Projeto.class).remove(projeto);
	}
	
	   public Projeto getSelectedProjeto() {  
	        return projeto;  
	    }  
	  
	    public void setSelectedProjeto(Projeto projeto) {  
	        this.projeto = projeto;  
	    } 
	    
	    
	    
	    public void onEdit() {  
	        FacesMessage msg = new FacesMessage("Car Edited");  
	  
	        FacesContext.getCurrentInstance().addMessage(null, msg);  
	    }  
	      
	    public void onCancel() {  
	        FacesMessage msg = new FacesMessage("Car Cancelled");  
	  
	        FacesContext.getCurrentInstance().addMessage(null, msg);  
	    }
	
}
